package org.freezo.website.config;
import org.freezo.website.service.RedirectsInterceptor;
import org.freezo.website.service.WebsiteListener;
import org.freezo.website.service.WebsiteViewResolver;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.web.servlet.ViewResolver;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
import org.thymeleaf.spring4.view.ThymeleafViewResolver;
@Profile("web")
@Configuration
public class WebConfiguration
{
@Autowired
private ThymeleafViewResolver viewResolver;
@Bean
public ViewResolver delegatingViewResolver()
{
return new WebsiteViewResolver(viewResolver, this.viewResolver.getOrder() - 1);
}
@Profile("web")
@Configuration
protected static class WebConfig extends WebMvcConfigurerAdapter
{
@Autowired
private RedirectsInterceptor redirectsInterceptor;
@Autowired
private WebsiteListener websiteListener;
@Override
public void addInterceptors(final InterceptorRegistry registry)
{
registry.addInterceptor(websiteListener).excludePathPatterns("/api/**", "/admin/**", "/error");
registry.addInterceptor(redirectsInterceptor).excludePathPatterns("/api/**", "/admin/**", "/error");
}
}
}